fracsum := proc(a::list, c::list, l)	local n, lrec, s1, s2;
	n := nops(a);	if n=1 then		return c[1]/(x - a[1]);	fi;	if type(l,even) = true then		lrec := l/2;	else		lrec := floor(l/2);	fi;	# creation recursive de la sommes des fractions
	s1 := fracsum([seq(a[i], i=1..lrec)], [seq(c[i], i=1..lrec)], lrec);
	s2 := fracsum([seq(a[i], i=((lrec+1)..l))], [seq(c[i], i=((lrec+1)..l))], lrec);	return normal(s1+s2); end;